package cn.emall.sso.controller;

import cn.emall.sso.service.TokenService;
import cn.emall.utils.EmallResult;
import cn.emall.utils.JsonUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJacksonValue;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 根据token查询用户信息Controller
 */
@Controller
public class TokenController {

    @Autowired
    private TokenService tokenService;

//    @RequestMapping(value="/user/token/{token}",produces="application/json;charset=utf-8")
//	@ResponseBody
//	public String getUserByToken(@PathVariable String token, String callback) {
//		EmallResult result = tokenService.getUserByToken(token);
//		//响应结果之前，判断是否为jsonp请求
//		if (StringUtils.isNotBlank(callback)) {
//			//把结果封装成一个js语句响应
//			return callback + "(" + JsonUtils.objectToJson(result)  + ");";
//		}
//		return JsonUtils.objectToJson(result);
//	}

    @RequestMapping(value = "/user/token/{token}")
    @ResponseBody
    public Object getUserByToken(@PathVariable String token,String callback){
        EmallResult emallResult = tokenService.getUserByToken(token);
        //响应结果之前，判断是否为jsonp请求
        if(StringUtils.isNotBlank(callback)){
            //把结果封装成一个js语句响应
            MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(emallResult);
            mappingJacksonValue.setJsonpFunction(callback);
            return mappingJacksonValue;
        }
        return emallResult;
    }

}
